package com.boardgamelib.system;

import java.util.List;

import com.boardgamelib.entity.Giocatore;
import com.boardgamelib.entity.StatoGioco;

public interface SistemaGiocatori<T extends Giocatore> {
	
	/** ritorna l'insieme dei giocatori
	 * 
	 * @return
	 */
	public List<T>getGiocatori();
	
	/** Aggiunge un giocatore
	 * 
	 * @param giocatore
	 */
	public void aggiungiGiocatore(T giocatore);

	/** ritona il giocatore chiamato "nome"
	 * 
	 * @param nome
	 * @return
	 */
	public T getGiocatore(String nome);
	
	public boolean uguali(T giocatore1, T giocatore2);
	
	public T getProssimo(StatoGioco<T> statoPrecedente);
}
